﻿package independence.reflection
{
	import independence.core.IndyObject;
	
	/**
	 * Mirror is a factory class for creating <code>IClassMirror</code> objects
	 * for reflection into a class instance's fields, methods, properties, superclasses,
	 * and interfaces.
	 * 
	 * @see independence.reflection.IClassMirror 
	 * @author TK, TK Assembled for Independence Glory.
	 */
	public class Mirror extends IndyObject
	{
		/**
		 * Returns an <code>IClassMirror</code> implmentation for examining and
		 * working with a class and its defined methods, fields, properties, superclasses,
		 * and interfaces.
		 * @param	clazz	An object to parse and retrieve the class for.
		 * @return	Returns the <code>IClassMirror</code> implementation for the given class.
		 */
		public static function getInstance(clazz:Object):IClassMirror 
		{
			return new ClassMirror(clazz);
		}
	}
	
}